مشخصات مقاله
آموزش SI with Collection2-Java Spring
SI توسط مجموعه (2)
مثال تزریق setter توسط مجموعه غیر رشته ای (دارای شی وابسته)
در صورت وجود شی وابسته در مجموعه، می توان با استفاده از عنصر ref درون list ، set و map به تزریق اطلاعات پرداخت. در اینجا از عنصر list ، set یا map درون عنصر property استفاده می شود.
این مثال برگرفته از فرومی است که" یک سوال می تواند چندین پاسخ داشته باشد" اما پاسخ¬ها اطلاعات منحصر به خود را دارند از جمله answerId، answer و postedBy . چهار فایل زیر برای این مثال نوشته شده است:
1. Question.java
2. Answer.java
3. applicationContext.xml
4. Test.java
در این مثال ما از list استفاده می کنیم که قابلیت داشتن عناصر تکراری را دارد. شما می¬توانید از set که تنها شامل عناصر یکتا است استفاده کنید. در صورت استفاده از set، در فایل applicationContext.xml ، list را به set و در فایل Question.java ،List را به Set تغییر دهید.
Question.java:
این کلاس شامل سه خصیصه، دو سازنده و متد displayInfo() برای چاپ اطلاعات است. در اینجا از list برای ذخیره پاسخ ها استفاده می کنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | package com.javatpoint; import java.util.Iterator; import java.util.List; public class Question { private int id; private String name; private List< Answer> answers; //setters and getters public void displayInfo(){ System.out.println(id+ " " +name); System.out.println( "answers are:" ); Iterator< Answer> itr=answers.iterator(); while (itr.hasNext()){ System.out.println(itr.next()); } } } <button></button> |
Answer.java:
این کلاس دارای سه خصیصه شناسه، نام وby به همراه سازنده و متد toString()است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | package com.javatpoint; public class Answer { private int id; private String name; private String by; //setters and getters public String toString(){ return id+ " " +name+ " " +by; } } <button></button> |
applicationContext.xml:
عنصر ref برای تعریف مرجع bean دیگر مورد استفاده قرار می گیرد. در اینجا برای تعیین مرجع bean دیگر از خصیصه bean عنصر ref استفاده می شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | < ? xml version = "1.0" encoding = "UTF-8" ?> 6. xsi:schemaLocation="http://www.springframework.org/schema/beans < bean id = "answer1" class = "com.javatpoint.Answer" > < property name = "id" value = "1" >< / property > < property name = "name" value = "Java is a programming language" >< / property > < property name = "by" value = "Ravi Malik" >< / property > < / bean > < bean id = "answer2" class = "com.javatpoint.Answer" > < property name = "id" value = "2" >< / property > < property name = "name" value = "Java is a platform" >< / property > < property name = "by" value = "Sachin" >< / property > < / bean > < bean id = "q" class = "com.javatpoint.Question" > < property name = "id" value = "1" >< / property > < property name = "name" value = "What is Java?" >< / property > < property name = "answers" > < list > < ref bean = "answer1" /> < ref bean = "answer2" /> < / list > < / property > < / bean > < / beans > < button ></ button > |
Test.java:
این کلاس bean را از فایل applicationContext.xml می گیرد و متد displayInfo را فراخوانی می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | package com.javatpoint; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; public class Test { public static void main(String[] args) { Resource r= new ClassPathResource( "applicationContext.xml" ); BeanFactory factory= new XmlBeanFactory(r); Question q=(Question)factory.getBean( "q" ); q.displayInfo(); } } <button></button> |